<?php
include_once '../classes/design.php';
include_once '../classes/dao.php';
include_once '../classes/marcador.php';

function campo_ordenavel($campo, $label) {
	global $ord_campo, $ord_direcao, $pode_alterar_ord, $design, $texto_busca, $buscar_letra;
	
	if (isset($buscar_letra)) {
		$url = $_SERVER["PHP_SELF"]."?buscar_letra=$buscar_letra";
	}
	else {
		$url = $_SERVER["PHP_SELF"]."?texto_busca=$texto_busca";
	}
	
	$retorno = "";
	
	if ($ord_campo == $campo) {
		if ($ord_direcao == "ASC") {
			$retorno .= "▲";
		}
		else {
			$retorno .= "▼";
		}
	}
	$retorno .= " $label";
	if ($pode_alterar_ord === true) {
		$retorno .= "<br/>";
		if ($ord_campo == $campo) {
			if ($ord_direcao == "ASC") {
				$retorno .= "<a href=\"$url&ord_campo=$campo&ord_direcao=DESC\">(Ord. ▼)</a>";
			}
			else {
				$retorno .= "<a href=\"$url&ord_campo=$campo&ord_direcao=ASC\">(Ord. ▲)</a>";
			}
		}
		else {
			$retorno .= "<a href=\"$url&ord_campo=$campo&ord_direcao=ASC\">(Ord. ▲)</a>";
		}
	}
	
	return $retorno;
}

$design = new Design("..");
$design->adicionar_form("form_busca");
$design->imprimir_topo();

$dao = new DAO();

echo "<a href=\"index.php\" class=\"titulo\">Músicas</a><br/>";

if (isset($_REQUEST["erro"])) {
	echo "<div class=\"erro\">".$_REQUEST["erro"]."</div>";
}

if (isset($_REQUEST["sucesso"])) {
	echo "<div class=\"sucesso\">".$_REQUEST["sucesso"]."</div>";
}

if (isset($_REQUEST["texto_busca"])) {
	$texto_busca = preg_replace("/ +/", " ", $_REQUEST["texto_busca"]);
}
else {
	$texto_busca = "";
}

if (isset($_REQUEST["buscar_letra"])) {
	$buscar_letra = $_REQUEST["buscar_letra"];
}

if (isset($_REQUEST["ord_campo"]) && isset($_REQUEST["ord_direcao"])) {
	$ord_campo = $_REQUEST["ord_campo"];
	$ord_direcao = $_REQUEST["ord_direcao"];
}
else {
	$ord_campo = "titulo";
	$ord_direcao = "ASC";
}

echo "
 <script type=\"text/javascript\" src=\"../javascript/funcoes.js\"></script>
 <script type=\"text/javascript\" src=\"../javascript/validacao.js\"></script>
 <a href=\"form.php\">".$design->get_imagem("mais.gif", "Nova música")." Nova música</a>
 <p/>
 <form method=\"post\" id=\"form_busca\" action=\"".$_SERVER["PHP_SELF"]."\">
 	".$design->get_imagem("search.png")." Busca por músicas: <input type=\"text\" name=\"texto_busca\" alt=\"Busca|Obrig|ComprimentoMinimo.3\" onkeyup=\"javascript: preencher(this, 'SOLETRASEESPACO', event);\" style=\"width: 300px;\" value=\"".htmlentities($texto_busca, ENT_QUOTES, "UTF-8")."\"/>
 	<button type=\"submit\">Pesquisar</button>
 </form>
 <p/>
 Músicas por letra: 
";
$ascii = ord("A");
while ($ascii <= ord("Z")) {
	$letra = chr($ascii);
	echo "<a href=\"".$_SERVER["PHP_SELF"]."?buscar_letra=$letra\" style=\"padding: 0 5px 0 5px\">$letra</a>";
	$ascii++;
}
echo "<br/><br/><br/>";

if ($texto_busca != "") {
	$pode_alterar_ord = true;
	$musicas = $dao->consulta_musicas($texto_busca, $ord_campo, $ord_direcao);
	$numero = count($musicas);
	if ($numero == 0) {
		echo "Não foi encontrada <b>nenhuma</b> música na busca por <b>\"$texto_busca\"</b>";
	}
	else {
		if ($numero == 1) {
			echo "Foi encontrado <b>1</b> registro";
		}
		else {
			echo "Foram encontrados <b>$numero</b> registros";
		}
		echo "
		 de música na busca por <b>\"$texto_busca\"</b>.
		";
	}
}
elseif (isset($buscar_letra)) {
	$pode_alterar_ord = true;
	$musicas = $dao->consulta_musicas_letra_inicial($buscar_letra, $ord_campo, $ord_direcao);
	$numero = count($musicas);
	if ($numero == 0) {
		echo "Não foi encontrada <b>nenhuma</b> música com a letra <b>$buscar_letra</b>";
	}
	else {
		if ($numero == 1) {
			echo "Foi encontrado <b>1</b> registro";
		}
		else {
			echo "Foram encontrados <b>$numero</b> registros";
		}
		echo "
		 de música com a letra <b>$buscar_letra</b>.
		";
	}
}
else {
	$pode_alterar_ord = false;
	$ord_campo = "quando_mexeu";
	$ord_direcao = "DESC";
	$musicas = $dao->consulta_ultimas_5_musicas($ord_campo, $ord_direcao);
	$numero = count($musicas);
	if ($numero) {
		echo "Esses são os registros das <b>".count($musicas)."</b> músicas alteradas mais recentemente";
	}
}
if (isset($musicas) && isset($numero) && $numero > 0) {
	echo "
	 <table border=\"1\" style=\"margin-top: 40px; width: 100%;\">
	 	<tr>
	 		<th></th>
	 		<th>".campo_ordenavel("titulo", "Música")."</th>
	 		<th>".campo_ordenavel("de_quem_eh", "De quem é")."</th>
	 		<th>Tom padrão</th>
	 		<th>Letra</th>
	 		<th>Tags</th>
	 		<th>Links</th>
	 		<th>".campo_ordenavel("quando_mexeu", "Alteração")."</th>
	 		<th>Excluir</th>
	 	</tr>
	";
	foreach ($musicas as $indice => $musica) {
		if ($texto_busca != "") {
			$mostrar_observacao = $dao->observacao_de_musica_contem_busca($texto_busca, $musica);			
		}
		$mostrar_observacao = false;
		echo "
		 <tr>
		 	<th
		";
		if ($mostrar_observacao) {
			echo " rowspan=\"2\"";
		}
		echo ">".($indice + 1)."</th>
		 	<td
		";
		if ($mostrar_observacao) {
			echo " rowspan=\"2\"";
		}
		echo "><a href=\"form.php?id=".$musica->get_id()."\">".Marcador::marcar($texto_busca, $musica->get_titulo(), "marca")."</a></td>
		 	<td>".Marcador::marcar($texto_busca, $musica->get_de_quem_eh(), "marca")."</td>
		 	<td align=\"center\">".$musica->get_tom_padrao()."</td>
		 	<td>".Marcador::marcar($texto_busca, $musica->get_letra_br_truncada(100, $texto_busca), "marca")."</td>
		 	<td>
		";
		$separador = "";
		foreach ($musica->get_tags() as $tag) {
			echo $separador."- ".Marcador::marcar($texto_busca, $tag->get_tag(), "marca");
			$separador = "<br/>";
		}
		echo "
			</td>
		 	<td>
		";
		$separador = "";
		foreach ($musica->get_links() as $link) {
			echo $separador."<a href=\"".$link->get_url()."\" target=\"_blank\">".$link->get_tipo()."</a>";
			$separador = "<br/>";
		}
		echo "
			</td>
			<td align=\"center\" nowrap>".$musica->get_quando_mexeu()."<br/>por ".$musica->get_quem_mexeu()."</td>
			<td align=\"center\"
		";
		if ($mostrar_observacao) {
			echo " rowspan=\"2\"";
		}
		echo "><a href=\"javascript: void(0);\" onclick=\"javascript: confirmarExclusaoMusica(".$musica->get_id().", '".addslashes(htmlspecialchars($musica->get_titulo()))."');\">".$design->get_imagem("excluir.gif", "Excluir")."</a></td>
		 </tr>
		";
		if ($mostrar_observacao) {
			echo "
			 <tr>
			 	<td colspan=\"5\"><b>Observações:</b> "
			 	.Marcador::marcar($texto_busca, $musica->get_observacoes_br_truncado(100, $texto_busca), "marca")."</td>
			 </tr>
			";
		}
			
	}
	echo "</table>";
}
?>





<?php 
$design->imprimir_fim();
?>